Skip to content

Latest commit

 

History

History
219 lines (128 loc) · 17.1 KB

05-Arquitetura da Solução.md

File metadata and controls

219 lines (128 loc) · 17.1 KB

Arquitetura da Solução

Iremos utilizar o Kafka Apache para enviar e receber mensagens de texto (SMS). A comunicação com o cliente será feita por node.js. No entanto, para uma comunicação em tempo real entre o cliente e o servidor, como um chat em tempo real, é necessário utilizar sockets. Nesse caso, a socket.io se comunica com o servidor node.js. Para integração dessa API, iremos utilizar React JS e para armazenamento dos dados persistentes será usado o MongoDB.

image image

Diagrama de Classes

A arquitetura de um aplicativo de mensagens distribuído pode ser complexa, mas geralmente segue um modelo cliente-servidor. No modelo deste projeto o servidor fornece serviços para os clientes, através da troca de mensagens, que pode ser realizada por intermédio do aplicativo móvel ou desktop, desde que conectados à Internet. Segue abaixo os diagramas Web e Mobile respectivamente.

DC Web

Processos e suas Respectivas Atividades

Nesta sessão, apresentaremos os modelos de gestão do projeto: BPMN, Tabelas, Gráficos ou Dashboards com no mínimo 5 indicadores de desempenho e metas para o processo de negócio e para o processo de desenvolvimento.

Com auxílio das aulas de Modelagem e Gestão de Processos e Negócios, o grupo determinou como método de gestão de processos, o modelo “Ciclo BPM”.

image

É importante destacar a abordagem de que processo é um trabalho ponta a ponta que atravessa a empresa de maneira transversal ou horizontal para criar valor para o cliente. Para Silva (2017, p. 49): “Processos ponta a ponta são processos que nascem da necessidade do cliente, passam por várias áreas e departamentos, e terminam na entrega do produto ou serviço para o cliente”.

image

Assim, o grupo pretende diminuir a complexidade, fazer o projeto de forma mais ágil e com menos recursos.

image

Para reforçar o comprometimento com o gerenciamento dos processos, iremos realizar um ciclo contínuo, incluindo as seguintes atividades:

  1. Planejamento = Início do ciclo; orientação estratégica da organização. Quais serão os processos que atenderão esses preceitos da estratégia: detalhamento.
  2. Análise = compreender as atividades do processos e os resultados que serão entregues. A organização tem condições de realizar? Quais as dificuldades? A análise é realizada por meio de algumas técnicas, com modelagens, entrevistas com as pessoas envolvidas, simulações, etc. Aqui, ainda não se objetiva encontrar soluções, mas apenas analisar eventuais problemas que possam ocorrer. O processo como ele é.
  3. Desenho = preocupar com as mudanças necessárias do processo que impactarão o alcance das metas e das organizações, visando a satisfação do cliente. Valor do produto que será entregue. O design (desenho) indica algo futuro. Que deverá ser executado. Como o processo será, já incorporadas as melhores detectadas na fase de Análise (To-be)? Em que momento serão implementados os recursos de tecnologias e os responsáveis do processos. Metas e indicadores e como serão suas implementações, como serão executados.
  4. Implementação = novo as-is. Nessa fase, modelagem, automação, rp, rm, a implementação irá envolver a programação dessas ferramentas. Preparação das bases de dados, etc. Ao seu final, espera-se o processo em execução (automatizado ou manual, ou híbridos)
  5. Monitoriamento e Controle = a execução do processo será acompanhada. Não só observar, mas é necessário também agir no sentido de controlar as interferências: medições, comparações, indicadores, Dashboards, mapas, cartões, etc. Tudo isso para garantir o alinhamento com as estratégias estabelecidas pelo grupo.
  6. Refinamento = Os ajustes, aperfeiçoar a implementação. Por mais que seja bem planejado, o processo muitas vezes necessita de refinamentos. O refinamento fecha o ciclo BPM de gerenciamento de processos de negócios.

A imagem abaixo demonstra o monitoramento e controle dos 6 elementos, gerados através de dados no Planner, registrados pelos membros, de suas respectivas atividades:

Projeto Messageria

Modelo e Notação de Processos de Negócio

O modelo Business Process Model and Notation (BPMN ou em português Modelo e Notação de Processos de Negócio), foi utilizado para descrever o processo de metodologia adotado para o processo de desenvolvimento e para o processo de negócios. Por ser padronizada, a notação BPMN facilitará o entendimento das pessoas envolvidas no projeto. Neste sentido, com o modelo BPMN, utilizaremos o seu conjunto de elementos gráficos para representar aquelas atividades de trabalho, agrupadas em processos, para indicar como eles serão executados.

Abaixo está o modelo do fluxo de mensagens entre os usuarios A e B e suas determinadas interações com a Aplicação durante uma conversa:

modelo BPMN

Modelo Físico

Segue abaixo o modelo físico contendo o JSON de criação da tabela "usuário" do banco de dados. Este modelo inclui a definição dos campos que farão parte da tabela, bem como as restrições de integridade necessárias.

modelo fisico usuario

Segue abaixo o modelo físico contendo o JSON de criação da tabela "mensagem" do banco de dados. Este modelo inclui a definição dos campos que farão parte da tabela, bem como as restrições de integridade necessárias.

modelo fisico mensagem

Segue abaixo o modelo físico contendo o JSON de criação da tabela "conversa" do banco de dados. Este modelo inclui a definição dos campos que farão parte da tabela, bem como as restrições de integridade necessárias.

modelo fisico conversa

Metas e Indicadores

A BPMN utiliza o seu conjunto de elementos gráficos para representar aquelas atividades de trabalho, agrupadas em processos, para indicar como eles são executados:

image

Diante disso, o grupo estabeleceu as seguintes metas e indicadores nesse processo de desenvolvimento:

  1. Separar regras de negócio das aplicações - visibilidade e processos mais inteligentes.
  2. Automatizar as regras - Consistência
  3. Gerenciar um repositório de regras - Regras como ativos.
  4. Expressar regras de negócio em termos que as pessoas de negócio compreendam - Visibilidade dos modelos de decisão
  5. Estimular a colaboração entre pessoas de negócio e TI - Agilidade

Como meta de negócio, sabe-se que o cliente utilizará o produto com o fim de otimizar o tempo. Não faz sentido, portanto, que ele gaste muito tempo configurando o serviço. Assim, o grupo estabeleceu que o procedimento de instalar, logar, ver tutorial de uso, determinar tempo e alarme, não deverá ultrapassar 10 minutos.

O objetivo é criar um produto simples e rápido, onde o tempo de instalação e configurações de uso fiquem dentro da margem de aceite (MA) estabelecida pela meta.

Classificação
de Indicadores
Métrica
Viável Dentro da Meta
Aceitável Meta + MA
Inviável Acima de Meta + MA
Evento Descrição Meta Margem de Aceite (MA)
Instalação Período entre a compra do produto até a completa instalação (**) 5 minutos 3 minutos
Configuração Acesso ao app, configurações de conta e configurações de uso 5 minutos 3 minutos
Instalação e Configuração até 10 minutos 10 minutos 3 minutos
Metas de Negócio Meta MA
downloads aumento de 35% em downloads no app 3.0
receita aumento de 25% na receita de anúncios no app 3.0
retenção nenhuma redução na retenção 3.0

Para acompanhar as metas de negócio, o grupo irá integrar o app ao Google Analytics para Firebase, que permite criar um registro quando os usuários abrem o app. O núcleo do Firebase é o Google Analytics, uma solução de análise ilimitada disponível sem custos financeiros. O Analytics se integra a recursos do Firebase e oferece geração ilimitada de relatórios para até 500 eventos distintos que podem ser definidos usando o SDK do Firebase. Com os relatórios do Analytics, o grupo poderá compreender a compenhar claramente o comportamento dos usuários, podendo assim, obter melhores decisões sobre otimizações de desempenho do app.

image

Para alcançar as metas, o grupo utilizará o método SMART, estabelecendo-se 5 indicadores de desempenho:

image

  1. Specific/Específico = Projeto completo até a data 07/12/2022. Utilização do aplicativo em 10 minutos pelo usuário.

  2. Measurable/Mensurável = em quanto tempo o resultado deve ser alcançado alcançado? Em 3 meses.

  3. Attainable/Atingível = considerando a capacidade produtiva dos membros do grupo, é viável a construção de um pomodoro cuja utilização e configuração para uso, não ultrapasse 10 minutos até a data final da conclusão do projeto.

  4. Relevante/Relevant = a meta é importante pois o serviço está relacionado à administração de tempo e produtividade. Caso o produto atrase o usuário em seus estudos ou tarefas, o produto torna-se completamente inútil. É importante que os membros estabeleçam funcionalidades simples e de fácil usuabilidade para que o principal objetivo do cliente seja atingido: não disperdiçar tempo.

  5. Time Base = Os membros do grupo deverão ser consultados sobre os prazos de cada etapa do processo, de modo que o cronograma seja definido de forma conjunta entre todos os envolvidos. Cada atividade deverá constar o nome do responsável e data de conclusão.

As etiquetas SMART são definidas no momento em que as atividades são criadas e distribuídas no backlog:

image

A figura a seguir mostra uma visão geral e atual do método SMART no backlog do projeto:

image

Para acompanhar o custo e a dificuldade de cada atividade desenvolvida no projeto, foi criado também 3 indicadores de medida: Difícil, Média e Fácil.

image image Assim, é possível visualizar as tarefas que irão requerer maior atenção e maior gasto de tempo, servindo inclusive de parâmetro para futuras medições ou atualizações de processos existêntes. Outra vantagem, é a possibilidade de se visualizar possível excesso ao atribuir tarefas à um determinado membro, de modo a distribuir as atividades de forma mais justa e eficiênte de acordo com o grau de dificuldade, sem sobrecarregar os integrantes.

Quadro Visual Atual de Gestão de Trabalho

Conforme estabelecido na "Figura Processo de Desenvolvimento", após cada integrante chamar uma atividade, ele realizará também o registro do andamento e os indicadores já demonstrados. A figura a seguir, demonstra o atual quadro de divisão de tarefas, conforme a terceira etapa do projeto. O acompanhamento dinâmico desse quadro, pode ser acessado em nosso Planner aqui (é necessário está logado em sua conta Microsoft).

image

Na mesma ferramenta, podemos ainda visualizar o gráfico geral do controle de desempenho dos integrantes:

image

Tecnologias Utilizadas

A linguagem de programação Javascript, atrelado a biblioteca React Native e React JS, juntamente com o framework e Node.js foi escolhidas para a aplicação por dois motivos. Primeiro, essas tecnologias são altamente escaláveis e permitem que a aplicação suporte muitos usuários simultâneos. Outro motivo para a escolha dessas linguagens de programação foi a experiência do grupo de desenvolvimento com elas. Como os integrantes já possuíam habilidades prévias com Javascript, React Native e Node.js, foi mais eficiente para eles implementar essas tecnologias no app "Chatter".

Linguagem Aplicação
Node.js BackEnd
Node.js WebAPI Rest
Javascript FrontEnd WEB
React Native FrontEnd Mobile
React JS FrontEnd Mobile
VSCode Software de Código
Mongo DB Banco de Dados
Postman Teste de API

chatter aplicação

Documentação da Implementação da WEB API Rest:

Operação Chamada HTTP
Read GET
Create POST
Create POST
Create POST

test register

user test

msg test

Hospedagem

Explique como a hospedagem e o lançamento da plataforma foi feita.

Links Úteis:

Qualidade de Software

Conceituar qualidade de fato é uma tarefa complexa, mas ela pode ser vista como um método gerencial que através de procedimentos disseminados por toda a organização, busca garantir um produto final que satisfaça às expectativas dos stakeholders.

No contexto de desenvolvimento de software, qualidade pode ser entendida como um conjunto de características a serem satisfeitas, de modo que o produto de software atenda às necessidades de seus usuários. Entretanto, tal nível de satisfação nem sempre é alcançado de forma espontânea, devendo ser continuamente construído. Assim, a qualidade do produto depende fortemente do seu respectivo processo de desenvolvimento.

A norma internacional ISO/IEC 25010, que é uma atualização da ISO/IEC 9126, define oito características e 30 subcaracterísticas de qualidade para produtos de software. Com base nessas características e nas respectivas sub-características, identifique as sub-características que sua equipe utilizará como base para nortear o desenvolvimento do projeto de software considerando-se alguns aspectos simples de qualidade. Justifique as subcaracterísticas escolhidas pelo time e elenque as métricas que permitirão a equipe avaliar os objetos de interesse.

Links Úteis: